System and method for orientating point cloud data relative to base reference data

ABSTRACT

A system for orientating point cloud data of a first surface relative to base reference data of a structure includes an input source generator adapted to provide the point cloud data, a tilt-correction means for orientating the point cloud data relative to the base reference data, a data editing means to filter spurious point data from the point cloud data, and a volume measurement means to measure the volume of objects that are non-fixably connected to the surface to segment the non-fixably connected objects from the point cloud data. The first surface is the surface of a wear liner. After orientation of the point cloud data with the base reference data, the surface displacement of the first surface to a second surface of the base reference substantially distinct from the first surface can be calculated to identify the thickness of the wear liner.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/520,700, filed Feb. 18, 2010, which claims priority to and thebenefit of the filing date of PCT International Patent ApplicationNumber PCT/AU2007/001977, filed Dec. 20, 2007, the disclosures of whichare hereby incorporated by reference in their entirety.

FIELD OF THE INVENTION

The present invention relates to scanning systems and methods fororientating scan cloud data relative to base reference data. Theinvention has particular, although not exclusive, utility for measuringsurfaces where the alignment of the scan cloud data relative to the basereference data is unknown. It is also relevant to identifying featuresin scan cloud data of a surface via the use of a partitioning means.

Throughout the specification, unless the context requires otherwise, theword “comprise” or variations such as “comprises” or “comprising”, willbe understood to imply the inclusion of a stated integer or group ofintegers but not the exclusion of any other integer or group ofintegers.

BACKGROUND ART

The following discussion of the background art is intended to facilitatean understanding of the present invention only. The discussion is not anacknowledgement or admission that any of the material referred to is orwas part of the common general knowledge as at the priority date of theapplication.

The applicant has previously disclosed a system for measuring andmapping a surface relative to a reference surface in the publication WO2007/000010. The system, amongst other things, provides the use of ascanner to gather scan cloud data, and then measure and map that scancloud data relative to a reference surface, which in the specificembodiments described, is the internal surface of a rotating cylindricalmill. As disclosed therein, despite the scanner being placed as close tothe centre of the mill as possible, the positioning will never be exact.Accordingly, the base reference data and the scan cloud data need to bealigned with the greatest degree of accuracy as is achievable.

In the comminution of minerals within the mining industry, the crushedore is separated into pieces and may then be fed into rotatingcylindrical mills. The rotation of a mill about its axis causes the orepieces to tumble under gravity, thus grinding the ore into decreasinglysmaller fractions. Some types of grinding mills are fitted withsecondary grinding systems such as iron or steel balls (ball mills),steel rods (rod mills) or flint pebbles (pebble mills) which assist inthe grinding process.

The accurate measurement of wear in a mill is particularly important, asthe cost of incorrectly predicting which liners to replace is great. Ifthe nature of the wear can be identified accurately, wear patterns mayalso be identified to optimise the operation of the mill.

Other measurements, such as the volume of the secondary grinding system,the size of the components thereof, and the size of screening systemswithin a discharge arrangement, are also difficult to measure.

Current means of measuring the ball charge volume are achieved usinghand held tape measures, to measure the distance from the surface of theball charge to some estimated longitudinal central axis; and to measurethe diagonal distance across the surface from one corner to the other.

These measurements are then used to calculate a volume using simplegeometry. A problem with this methodology is the fact that the surfaceis never perfectly flat and the base reference data is not known. Forexample, the liners covered by a ball charge are ill defined. Unless thereference plane, above which the surface of a ball charge sits, is knownprecisely, the calculation of ball charge volume will inevitably beinaccurate.

The volume of the ball charge is an important factor in achievingoptimum grinding and production from a mill. A variation of only 4% fromthe optimum ball charge has been reported to reduce throughput bybetween 5% and 10%. Improving the accuracy of this measurement willimprove the level of control and performance of the mill.

Furthermore, there is no known method to determine what proportion ofthe remaining objects in a mill are attributable to the materials beingground as opposed to the objects of the secondary grinding system. Onemethod to measure the ratio of steel balls to ore is to empty the mill,separate the components, and weigh them. Another known method is tomonitor the gross mass flows of ore, water and balls into the mill.However it is difficult to separate out these components from each otherin exit streams, so the best result achieved is a rough estimation. Theratio of ball to ore is very important for the optimum performance ofthe mill. If there is too much ore then the balls take more time tocrush it to the correct size and throughput is limited. If there are toomany balls relative to the ore they risk impacting on bare liners anddramatically increasing wear rates.

In the case of measuring the size of the components or objects that makeup a secondary grinding system, there is no optimal method to measuretheir individual size. In a ball grinding system, the only known way tomeasure the size of these balls is to physically remove them from themill and, as previously mentioned, individually measure them. This isimpractical in an operational mill, due to the significant downtimeincurred.

Balls can be added to mills on a daily basis and the quantity and sizeare a critical performance parameter. Ball size is important because asballs wear and reduce in size their impact power is reduced and they areless effective in breaking down rocks. Typically when the diameter of asphere has been reduced to its half original size the mass will bereduced by a factor of 8. At this point the steel ball is consideredineffective and simply occupies valuable space in the mill, limitingproduction. Smaller balls will also produce a finer product and thedesign of the mineral liberation system downstream of the mill is highlysensitive to product grind size. The matching of ball size to productsizing and the control of these parameters is often critical to theyield of the resulting mineral.

Finally, measuring the size of screening system employed in a mill isimportant in order to gauge the performance of the mill. Gratesconstituting the screening system hold back the grinding media. As grateholes wear they will allow larger grinding media through and reduce theeffectiveness of the grinding process. The only known method ofmeasuring these grates is to manually enter the mill and measure thegrate holes individually. Typically there are several hundred grateholes in each mill. Given the repetitive nature of the tasks of manuallymeasuring hundreds of grates, the process is also highly susceptible tohuman error.

DISCLOSURE OF THE INVENTION

It is an object of the present invention to ameliorate, mitigate orovercome, at least one of the aforementioned problems associated withprior art mill measurement, or to at least provide the public with auseful choice in an alternative system for mill measurement.

It should be appreciated with the above object said, however, thepresent invention is in no way limited solely to application with millliner measurement and may have other applications as discussed elsewherein the specification.

In accordance with one aspect of the present invention, there isprovided a system for orientating scan cloud data of a target surfacerelative to base reference data including an input source generatoradapted to provide said scan cloud data; a tilt-correction means fororientating said point cloud data relative to the base reference data;and a data editing means to filter spurious point data from theaccumulated point cloud data, wherein the base reference data representsat least critical geometrical parameters of a base reference, the basereference being substantially distinct from the target surface.

Preferably, the base reference data includes key reference data todescribe the geometry of the base reference.

Preferably, the target surface and the base reference are referenced totheir own respective co-ordinate system.

Preferably, the base reference represents a contained space.

Preferably, the contained space is bounded by a substantiallycylindrical shell with opposing ends.

Preferably, the base reference further includes critical parametersdefining the location of the central longitudinal axis of the shell, theradius of the shell, and the length of the cylindrical portion of theshell.

Preferably, the data editing means further includes partitioning meansto partition said point cloud data into discrete segments correspondingto different geometric sections of said surface.

Preferably, the data editing means is adapted to operate prior to thetilt-correction means.

Preferably, the data editing means includes at least one or more of thefollowing processes: (i) a scanner structure filter to remove pointsattributable to any supporting means used to situate, stabilise orprotect the scanning means; (ii) an intensity filter to remove any pointin the accumulated point cloud data above a threshold intensity value;and (iii) a range filter to remove any point less than a minimum orgreater than a maximum threshold in the accumulated point cloud data.

Preferably, the said base reference data includes radius and lengthvariables, and wherein said range filter derives the threshold from saidradius and said length.

Preferably, the tilt-correction means includes a point cloud dataorientation means, wherein said point cloud data orientation meansincludes: a temporary point removal means for temporarily removingpoints that are substantially longitudinally parallel with pointsremoved by the scanner structure filter; a rotation values means tocalculate rotation values to be applied to the scan cloud data; a scancloud data rotation process; and a point restoration means wherebypoints removed by the temporary point removal means are restored to theaccumulated point cloud data.

Preferably, the point cloud data orientation means includes a rotationvalue software utility including: a translator process to translate thescan cloud data using a centroid reduction

${\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - {\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}\mspace{14mu} {where}\mspace{14mu} \begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}} = {\frac{1}{n}{\sum\limits_{i = 1}^{n}\; \begin{pmatrix}x \\y \\z\end{pmatrix}_{i}}}}},$

and a calculator process to determine rotation values via eigenvaluedecomposition of the covariance matrix of the scan cloud data

$\Lambda = {{{MCM}^{T}\mspace{14mu} {where}\mspace{14mu} C} = {\sum\limits_{i = 1}^{n}\; {\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i}{\begin{pmatrix}x^{\prime} & y^{\prime} & z^{\prime}\end{pmatrix}_{i}.}}}}$

Preferably, the rotation value software utility is adapted to rotate theaccumulated scan cloud data, the rotation value software utilityincluding: a rotation process to rotate values so that thex-longitudinal, y-transverse, and z-height axes coincide

$\begin{pmatrix}x^{''} \\y^{''} \\z^{''}\end{pmatrix}_{i} = {M\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}}_{i}$

where M is a rotation value calculated by the rotation values means.

Preferably, the tilt-correction means includes a tilt-correctionsoftware utility for determining and correcting any residual tilt in theaccumulated scan cloud data about an axis including: an extractorprocess to extract a temporary set of points, p, within a set ofconstraints,

|x _(i) |<t _(x) |y _(i) |<t _(y) z _(i) >t _(z),

a subtracter process to substract a mean x co-ordinate from thetemporary set of points,

${x_{i}^{\prime} = {{x_{i} - {\overset{\_}{x}\mspace{14mu} {where}\mspace{14mu} \overset{\_}{x}}} = {\frac{1}{p}{\sum\limits_{i = 1}^{p}\; x_{i}}}}},$

forming the following 2D line equation for each point in the resultingtemporary set of points:

z _(i) =mx _(i) ′+b,

a least-squares calculator to calculate the least-squares estimate ofthe slope, m. as:

${m = \frac{\sum\limits_{i = 1}^{p}{z_{i}x_{i}^{\prime}}}{\sum\limits_{i = 1}^{p}\left( x_{i}^{\prime} \right)^{2}}},$

a rotate angle calculator process to calculate a rotation angle, φ, as:

φ=arctan(m),

an accumulated scan point rotation process to rotate the accumulatedscan point data:

$\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{R_{2}(\phi)}\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}}$${{where}\mspace{14mu} {R_{2}(\phi)}} = {\begin{pmatrix}{\cos \; \phi} & 0 & {{- \sin}\; \phi} \\0 & 1 & 0 \\{\sin \; \phi} & 0 & {\cos \; \phi}\end{pmatrix}.}$

Preferably, the base reference is a substantially cylindrical shell andsaid key reference data are the critical parameters that describe thegeometry of the base reference, wherein said partitioning means includesat least one or more of the following processes: (i) an opposing-endsegmentation means wherein said opposing-end segmentation means includesat least one or more of the following processes: a) a planar-endsegmentation means to segment points in the accumulated point cloud datawhen said base reference data denotes a substantially planar end; and b)a conical-end segmentation means to segment points in the accumulatedpoint cloud data when said base reference data denotes a substantiallyconical end. (ii) a floating-object segmentation means to segment pointsin the accumulated point cloud data attributable to objects that arenon-fixably connected to said surface; and (iii) a belly segmentationmeans to segment points in the accumulated point cloud data attributableto said cylindrical shell.

Preferably, the planar-end segmentation means and conical-endsegmentation means includes an end segmentation software utilitycomprising: a frequency calculator process to calculate the frequency ofeach longitudinal co-ordinate within the accumulated point cloud data; agreatest frequency calculator process to determine the greatest saidfrequency of positive and negative longitudinal co-ordinates; athreshold addition process to add a threshold value to said greatestnegative and positive frequency values; and whereby said conical-endsegmentation means further comprises: a minima locations calculatorprocess to scan said longitudinal co-ordinate frequencies to determineminima locations from said greatest negative and positive frequencyvalues as towards the location of said scanner; a segmentation processto segment the points in the accumulated point cloud data attributableto the planar ends according to said minima locations; and whereby saidconical-end segmentation means uses the greatest negative and positivefrequency values of the minima locations calculator process to segmentthe points in the accumulated point cloud data attributable to theconical ends.

Preferably, the system further includes a non-fixably connected volumemeasurement means, to measure the volume of objects that are non-fixablyconnected to said surface.

Preferably, the system further includes a hole measurement means tomeasure the size of apertures in said surface.

Preferably, the non-fixably connected volume measurement means furthercomprises a ball-ore discrimination means to measure the ratio of a setof balls to non-ball materials.

Preferably, the non-fixably connected volume measurement means furthercomprises a ball size measurements means to measure the size of a set ofballs within the cylindrical shell.

Preferably, the floating-object segmentation means includes afloating-object software utility that operates after the opposing-endsegmentation means has been effected on the scan cloud data, thefloating-object software utility including: a radius frequencycalculator process to calculate the frequency of each cylindrical radiusvalue in accumulated scan cloud data, a peak value determinative processto determine a peak value of the frequencies of cylindrical radii andsegmenting points based on the peak value, a segmentation fittingprocess to fit all segmented points to a plane by eigenvalue-baseddecomposition, a scan cloud translation process to translate scan clouddata of m points to a centroid

${\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - {\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}\mspace{14mu} {where}\mspace{14mu} \begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}} = {\frac{1}{n}{\sum\limits_{i = 1}^{n}\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}}}}},$

an eigenvalue decomposition process to determine the eigenvaluedecomposition of a covariance matrix

${\Lambda = {{{MCM}^{T}\mspace{14mu} {where}\mspace{14mu} C} = {\sum\limits_{i = 1}^{n}{\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i}\begin{pmatrix}x^{\prime} & y^{\prime} & z^{\prime}\end{pmatrix}_{i}}}}},$

a plane model is given by ax+by +cz−d=0 where (a, b, c) are the elementsof the eigenvector corresponding to the smallest eigenvalue, and

${d = {\begin{pmatrix}a & b & c\end{pmatrix}\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}},$

a residual deviation calculation process to calculate the residualdeviation, v, from the best-fit plane for each point:

ax _(i) +by _(i) +cz _(i) −d=v _(i), and

a points discardal process to discard points above the plane based onthe standard deviation of residuals.

Preferably, the belly segmentation means includes a belly segmentationsoftware utility including: a centroid refiner process to refine thecentroid of point cloud on the longitudinal axis by calculating the meanvalue at either end of the substantially cylindrical shell using anequal number of points

${{\overset{\_}{x}}_{L} = {{\frac{1}{p^{-}}{\sum\limits_{i = 1}^{p^{-}}{x_{i}^{-}\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} \frac{p^{-}}{n}}}} \geq t_{p}}},{and}$${{\overset{\_}{x}}_{R} = {{{\frac{1}{p^{+}}{\sum\limits_{i = 1}^{p^{+}}{x_{i}^{+}\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} \frac{p^{+}}{n}}}} - \frac{p^{-}}{n}} \leq t}},$

where − and + refer to points from the left and right ends of the bellyliner point cloud, respectively, a scan cloud translation process totranslate the entire scan cloud data by the mean of these two means

${x_{i}^{\prime} = {{x_{i} - {\overset{\_}{x}\mspace{14mu} {where}\mspace{14mu} \overset{\_}{x}}} = \frac{{\overset{\_}{x}}_{L} + {\overset{\_}{x}}_{R}}{2}}},$

a cylindrical definition process to define a circle at each end of thesubstantially cylindrical shell, the circle being the circle ofintersection of cylindrical belly surface of the base reference data andthe conical or planar end surface of base reference data, a conedefinition process to define a cone with this circle as the base andapex on the belly side of the circle having half-apex angle of 45°, anda point assignment process to assign within the cone to a given end ofthe substantially cylindrical shell and to assign each point outside ofthe code to the cylindrical shell.

Preferably, the belly segmentation means includes a cylinder-fitprocess, wherein the cylinder-fit process includes a cylinder-fitsoftware utility that operates after the opposing-end segmentation meansand the floating-object segmentation means have been effected on thescan cloud data, the cylinder-fit software utility includes: an equationforming process to form the following equation for each point in theaccumulated scan cloud data ∥(p _(i)−q)×n∥−r=0 where the observationpoint vector is given by p _(i)=(x_(i) y_(i) z_(i))^(T), the cylinderposition vector is given by q=(0 y_(c) z_(c))^(T), and the cylinder axisvector is given by n=(a b c)^(T), a weighted constraint addition processto add the weighted constraint a²+b²+c²−1=0 and solving in parametricleast squares, a cylinder position translation process to translate theentire scan point cloud by the cylinder position vector

${\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - \begin{pmatrix}0 \\y_{c} \\z_{c}\end{pmatrix}}},$

a rotation value calculator process to calculate the rotation angles, φand κ,

${\phi = {{{arc}\; \tan \; \left( \frac{c}{a} \right)\mspace{14mu} {and}\mspace{14mu} \kappa} = {{arc}\; \tan \; \left( \frac{- b}{a} \right)}}},$

and a scan cloud transformation process to transform the entire pointcloud

$\begin{pmatrix}x^{''} \\y^{''} \\z^{''}\end{pmatrix}_{i} = {M^{T}\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}}_{i}$

where M=R₃(κ)R₂ (φ).

In accordance with another aspect of the invention, there is provided asystem for identifying features in scan cloud data of a surfacecomprising an input source generator adapted to provide said scan clouddata; and a partitioning means to partition said point cloud data intodiscrete segments corresponding to different geometric sections of saidsurface.

Preferably, the system further includes a non-fixably connected volumemeasurement means, to measure the volume of objects that are non-fixablyconnected to said surface.

Preferably, the system further includes a hole measurement means tomeasure the size of apertures in said surface.

Preferably, the non-fixably connected volume measurement means furthercomprises a ball-ore discrimination means to measure the ratio of a setof balls to non-ball materials.

Preferably, the non-fixably connected volume measurement means furthercomprises a ball size measurements means to measure the size of a set ofballs within a cylindrical shell.

In accordance with a further aspect of the invention, there is provideda method for orientating scan cloud data of a surface relative to basereference data according to the system described in a preceding aspectof the invention.

In accordance with a still further aspect of the invention, there isprovided a method for identifying features in scan cloud data of asurface according to the system described in a preceding aspect of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate particular features of specificembodiments of the best mode for carrying out the present invention,wherein:

FIG. 1 shows an example instance of gathering scan cloud data using aninput source generator in the form of a laser scanner and boomarrangement;

FIGS. 2 to 7 show a data editing means and transformation processorscomponents of the software.

FIG. 8 represents a 3D image showing a typical set of points in thereceived scan cloud data from the scanner.

FIGS. 8a-8d represent 3D images of the resulting segmented output fromthe data editing means.

FIG. 9 represents a sectional view of a typical mill with a laserscanner placed approximately at its centre.

FIGS. 10a and 10b are diagrams showing a protective cowling utilised toshelter a laser scanner from errant falling debris, in profile and planview respectively.

FIG. 11 represents a visual depiction of an alignment process utilisedby the data editing means.

FIG. 12 shows points removed in connection with a protective cowling,and the portion of points removed to counter biases in the rotationestimation.

FIG. 13 illustrates a method of determining and correcting the residualtilt about the transverse and height axes.

FIGS. 14 and 15 depict the point data used to correct tilt about thetransverse and height axis respectively.

FIGS. 16 and 17 are histograms illustrating a method to segment mill endpoints for a planar end mill and conical end mill respectively.

FIG. 18 is a histogram illustrating a method to segment pointsattributable to the ball charge a given mill.

FIG. 19 is a visual depiction of a method of fitting ball charge pointsto a plane in order to remove unwanted data points.

FIG. 20 is a visual depiction of a process of fitting a cylinder to allbelly points to correct tilt and remove eccentricities in the scan clouddata.

FIG. 21 illustrates a method of fine segmentation of the belly endsusing radius-based filters.

FIG. 22 visually depicts ball charge points being fit to a plane toremove unwanted data points.

FIG. 23 visually depicts a method of using the ring and throat linerradii to refine the segmentation of the data points.

FIG. 24 visually depicts a method of utilising a cone shape to furtherrefine the segmentation of points between the mill ends and the belly.

FIG. 25 visually depicts a method of data point refinement for a conicalend mill using a cone of the back-of-liner surface.

FIGS. 26a and 26b depict a discharge end liner with grate holes to allowcrushed ore to pass through, and a portion thereof respectively.

FIGS. 27a and 27b represent a point cloud scan of a portion of adischarge end, and the same portion with detected edges for one gratehole.

BEST MODE(S) FOR CARRYING OUT THE INVENTION

The best mode for carrying out the invention will now be described withreference to one specific embodiment thereof and several otheralternative embodiments. The description of the specific embodimentmakes reference to the accompanying drawings. Accordingly referencenumerals referred to herein are used in the drawings to show thecorresponding feature described in the embodiment.

The specific embodiment is directed towards measuring wear of millliners in a rotating cylindrical mill used in the comminution ofminerals within the mining industry.

The replacement of mill liners is a costly, but necessary, taskassociated with the operation of a rotating cylindrical mill. Asdisclosed in WO 2007/000010, and included herein with reference to FIG.1, an input source generator can be adopted in the form of firstgathering scan cloud data using a laser scanner 11 from a mill having acylindrical shell 25, the shell having a feed end 31 and a discharge end33. The scan cloud data may then be secondly stored in a database orother suitable digital storage medium. A transformation processor,forming part of a data processing system, then accesses the scan clouddata generated by the input source generator, as would be appreciated bya person skilled in the art.

The base reference data may be obtained from a CAD model of the mill orfrom a scanning of the internal shell without the liners in place, andthus is referenced to its own co-ordinate system, the X-axis of which isdefined by the longitudinal axis of the mill. Thus the base referencedata is characterised by key reference data comprising critical millparameters that describe the geometry of the base reference of the mill,namely the shell radius and the length of the cylindrical portion of theshell.

For mills with conical rather than planar ends, the cone angle relativeto the cylinder axis and distance between feed and discharge end apexesalso constitute key reference data.

The base reference data for the mill, as stored in the database, is thencorrelated with the displacement data obtained from the laser scanner bythe transformation processor.

The reason for this is that the co-ordinate system of the displacementdata obtained by the laser scanner is referenced to the reference pointof the laser scanner, whereas the base reference data for the mill isreferenced to its own co-ordinate system related to the geometry of themill. Therefore in order to derive accurate displacement data indicativeof the mill liner segment thickness at any particular point, the twosets of data need to be correlated. Accordingly, an important aspect ofthe transformation processor is to provide for this correlation.

Since the laser scanner 11 collects data in a near spherical field ofview, the raw point cloud data also contains spurious points fromoutside the mill, collected when the laser beam passes through thevarious holes in the feed and discharge ends. These unwanted points arefirst filtered out from the accumulated point cloud data by a dataediting means, which also forms part of the data processing system.

The base reference data usually represents a substantially cylindricalshell with opposing ends and said critical parameters including thelocation of the central longitudinal axis of the shell; the radius ofthe shell; and the length of the cylindrical portion of the shell.

The operation of the data editing means is outlined as a flowchart inFIGS. 2-7. The flow chart of the data editing means of this embodimentbegins at FIG. 2.

A visual depiction of the scan cloud data input into, and resultingoutput from, the data editing means is provided in FIGS. 8 and 8 a-8 drespectively.

The data editing means uses a co-ordinate transformation softwareutility to effect the creation of a spherical co-ordinate for each pointin the accumulated point cloud data, said co-ordinate translationsoftware utility comprising a rotation process to translate each point.The transformation software utility bases its calculations on Cartesianco-ordinate for each said point at 245. For each point, the sphericalco-ordinate is calculated as follows:

$\rho_{i} = \sqrt{x_{i}^{2} + y_{i}^{2} + z_{i}^{2}}$$\theta_{i} = {{arc}\; \tan \; \left( \frac{y_{i}}{x_{i}} \right)}$$\alpha_{i} = {{arc}\; {\tan\left( \frac{z_{i}}{\sqrt{x_{i}^{2} + y_{i}^{2}}} \right)}}$

As the protective hut 240 obstructs the scanner's field of view, thepoints of the scan cloud data attributable to this structure need to beisolated and removed at 247. This includes both the hut roof and thesupport beams used to support the hut roof. A scanner structure filteris employed to isolate and remove these points. One type of scannerstructure filter is to use a method of isolating and removing theprotective hut 240 scan points at 247 by defining horizontal andvertical angle thresholds that correspond with the geometry of theprotective hut 240. Using the spherical co-ordinates of the scan clouddata, the following method can then be used to remove the erroneouspoints attributable to the protective hut 240 at 247:

α_(i) >t _(α)

The following tolerances remove points from the supports for the roofand are applied on the basis of horizontal direction angle at 247:

−t _(θ) ₁ <θ_(i) <−t _(θ) ₂ (to remove points near θ=0°)

−t _(θ) ₃ <θ_(i) <−t _(θ) ₄ (to remove points near θ=180°)

The distance variable measured by laser scanners can be inaccurate. Onedeterminate of accuracy is the intensity of a given point. To improvethe accuracy of the resulting scan cloud data, an intensity filter isutilised. One type of intensity filter is to remove all points which aregreater than a user-defined threshold intensity value at 249:

I _(i) >t ₁

The data editing means also uses a range filter to remove points that donot reside within a defined distance range. One type of range filter isto remove points within the scan cloud data by comparing the measuredrange with a maximum at 251 and minimum at 253 threshold derived fromthe mill radius and mill length of the base reference data:

ρ₁ >t _(ρ) _(max)

ρ_(i) <t _(ρ) _(min)

The system uses a point cloud data orientation means to improve theaccuracy of later described processes. Firstly, a temporary pointremoval means is utilised in the instance that a protective hut 240 hasbeen utilised. One type of temporary point removal means is totemporarily remove a segment of the scan cloud data based on theouter-circumferential boundaries of the points that were previouslyremoved to allow for the presence of the hut supports 244 at 247. Inthis embodiment, this is achieved by temporarily removing the pointsthat are substantially longitudinally parallel to the points that werepreviously removed to allow for the presence of the hut supports 244 at247. Accordingly, all points within a user-defined transverseco-ordinate range are temporarily removed:

−t _(y) <y _(i) <t _(y)

This counters bias in the rotation value means at 259, that is otherwisecaused by the points removed to allow for the presence of the hutsupports 244 at 247. The temporary removal of points by the temporarypoint removal means is visually depicted in FIG. 12, which outlines aplan view of example scan cloud data when a protective hut 240 has beenutilised, and the points attributable to that protective hut 248 removedat 247. The points removed in connection with the protective hut 240 aredepicted in the circular shaded region 248. The shaded region that isbounded by a substantially rectangular shape 250 represents the pointswhich are temporarily removed in this embodiment.

The laser scanner 11 is only approximately placed in the middle of themill, and therefore the longitudinal 252, transverse 254 and height 268dimensions are also approximated. Accordingly, the internal laserscanner co-ordinate system needs to be aligned with the mill co-ordinatesystem at 263. An example of this alignment process is visually depictedin FIG. 11. With reference to FIG. 11, the initial scan cloud data 256is referenced to the laser scanner's co-ordinate system 258, which isarbitrarily positioned and orientated relative to the mill co-ordinatesystem 260. A scan cloud rotation process at 263 is utilised to alignthe mill and scanner co-ordinate systems. After the scan cloud rotationprocess at 263 has completed, the scan cloud data is substantiallyaligned with the mill co-ordinate system 262.

The scan cloud rotation process requires rotation values to perform therotation. A rotation values means is utilised to calculate the rotationvalues at 263. In this embodiment, the rotation values includes arotation value software utility which firstly uses a translator processto translate the scan cloud data to the centroid at 255 of the remainingdata:

$\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - {\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}\mspace{14mu} {where}\mspace{14mu} \begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}} = {\frac{1}{n}{\sum\limits_{i = 1}^{n}{\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}.}}}}$

The rotation values are then determined via a calculator process usingeigenvalue decomposition of the covariance matrix of the scan clouddata:

Λ = MCM^(  T) where $C = {\sum\limits_{i = 1}^{n}{\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i}\begin{pmatrix}x^{\prime} & y^{\prime} & z^{\prime}\end{pmatrix}_{i}}}$

The scan cloud data, including the temporarily-removed points at 257,are then rotated by the scan cloud data rotation process at 259, usingthe rotation value software utility, according to the rotation valuesproduced by the rotation values means, whereby a rotation processensures that the x-longitudinal, y-transverse and z-height axescoincide:

$\begin{pmatrix}x^{''} \\y^{''} \\z^{''}\end{pmatrix}_{i} = {M^{T}\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}}_{i}$

After the completion of the scan cloud data rotation process at 263, thepoints temporarily removed at 257 are restored into the scan cloud dataat 261 using a point restoration means. In this embodiment, the pointspreviously marked by the temporarily point removal means are restored tothe accumulated point cloud data.

Another iteration of removing unwanted data is repeated at 265 accordingto whether each given point's longitudinal co-ordinate exceeds athreshold derived from the mill length, and if applicable, the coneangle:

−t _(x) <x ₁ <t _(x)

Following the second iteration of the removal of unwanted data at 265,any residual tilts are determined and corrected at 267 using atilt-correction means, which includes a tilt-correction softwareutility. The tilt-correction software utility at 267 is actuated on thepoint cloud data about the transverse at 269 and height at 271 axes.

With reference to FIG. 13, one type of tilt-correction means is to use amethod of determining and correcting the residual tilt about thetransverse axis at 269 by firstly isolating a narrow band of points atthe top of the mill 266 that are oriented parallel to the longitudinalaxis 252, with a view to ensuring these points are substantially level.This process can be actuated as follows:

i. An extractor process extracts a temporary set of points (p) 266 fromthe belly within the following user-defined constraints:

|x _(i) <t _(x) |y _(i) |<t _(y) z _(i) >t _(z)

ii. a subtracter process subtracts the mean x co-ordinate from theextracted set of points:

$x_{i}^{\prime} = {{x_{i} - {\overset{\_}{x}\mspace{14mu} {where}\mspace{14mu} \overset{\_}{x}}} = {\frac{1}{p}{\sum\limits_{i = 1}^{p}x_{i}}}}$

iii. For each point in the extracted set of points, form the following2D line equation:

z _(i) =mx _(i) ′+b

iv. a least-squares calculator calculates the least-squares estimate ofthe slope, m, as

$m = \frac{\sum\limits_{i = 1}^{p}\; {z_{i}x_{i}^{\prime}}}{\sum\limits_{i = 1}^{p}\; \left( x_{i}^{\prime} \right)^{2}}$

v. a rotate angle calculator process calculates the rotation angle, φ. Afigure is provided visually depicting a typical tilt correction aroundthe transverse axis 254 in FIG. 14. The rotation angle φ is calculatedas follows

φ=arctan(m)

vi. an accumulated scan point rotator process then rotates theaccumulated scan point data:

$\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{{R_{2}(\phi)}\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}\mspace{14mu} {where}\mspace{14mu} {R_{2}(\phi)}} = \begin{pmatrix}{{\cos \; \phi}\;} & 0 & {{- \sin}\; \phi} \\0 & 1 & 0 \\{\sin \; \phi} & 0 & {\cos \; \phi}\end{pmatrix}}$

Secondly, isolate a narrow band of points on one side of the mill 264 atthe height of the centroid, with a view to ensuring these points aresubstantially parallel with the longitudinal axis 252. This process canbe actuated as follows:

i. Extract a temporary set of points (p) 264 from the belly within thefollowing user-defined constraints:

|x _(i) |<t _(x) y _(i) >t _(y) |z _(i) |<t _(z)

ii. Subtract the mean x co-ordinate from the extracted set of points:

$x_{i}^{\prime} = {{x_{i} - {\overset{\_}{x}\mspace{14mu} {where}\mspace{14mu} \overset{\_}{x}}} = {\frac{1}{p}{\sum\limits_{i = 1}^{p}x_{i}}}}$

iii. For each point in the extracted set of points, form the following2D line equation:

y _(i) =mx _(i) ′+b

iv. Calculate the least-squares estimate of the slope, m, as

$m = \frac{\sum\limits_{i = 1}^{p}\; {y_{i}x_{i}^{\prime}}}{\sum\limits_{i = 1}^{p}\; \left( x_{i}^{\prime} \right)^{2}}$

v. Calculate the rotation angle, κ. A figure is provided visuallydepicting a typical tilt correction around the height axis 268 in FIG.15. The rotation angle κ is calculated as follows

κ=arctan(m)

vi. The scan cloud data are then rotated

$\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{{R_{3}(\kappa)}\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}\mspace{14mu} {where}\mspace{14mu} {R_{3}(\kappa)}} = \begin{pmatrix}{{\cos \mspace{11mu} \kappa}\;} & {\sin \mspace{11mu} \kappa} & 0 \\{{- \sin}\mspace{11mu} \kappa} & {\cos \mspace{11mu} \kappa} & 0 \\0 & 0 & 1\end{pmatrix}}$

In the current embodiment, the partitioning means assigns labels to thescan cloud data at 273 as either belonging to a mill end, the ballcharge at 270 or the belly at 272.

An opposing-end segmentation means is used to isolate and label thepoints in the scan cloud data attributable to a mill end at 275, whichutilises an end segmentation software utility. The opposing-endsegmentation means differs according to whether the base reference dataindicates that the mill has planar or conical ends.

In the case of a planar end, a planar-end segmentation means is used.The planar-end segmentation means at 277 uses an end segmentationsoftware utility that calculates the frequency of each longitudinal 252co-ordinate within the accumulated scan cloud data using a frequencycalculator process. This data can be represented as a histogram. Anexample of a typical histogram of this nature is illustrated in FIG. 16.The left and right peaks represent the greatest said frequency ofpositive and negative longitudinal coordinates 274. These peaks, whichcorrespond to the mill ends, are located. The peak value locations 274define, with the addition or subtraction of a pre-defined thresholdvalue by a threshold addition process, are the thresholds 276 forassigning points to either the feed end 282 or the discharge end 284. Inthis embodiment, the left peak defines the feed end:

x _(i) <x _(p) _(L)

and the right end the discharge end:

x _(i) <x _(p) _(R)

In the case of a conical end, a conical-end segmentation means is usedat 279. In this embodiment, the conical-end segmentation means uses afrequency calculator process of the end segmentation software utility tocalculate the frequency of each longitudinal 252 co-ordinate within theaccumulated scan cloud data. This data can also be represented as ahistogram. An example of a typical histogram of this nature isillustrated in FIG. 17. The negative and positive peaks of saidfrequencies of longitudinal coordinates are calculated 280 by a greatestfrequency calculator process.

From these negative and positive peaks 280, the histogram is searchedinward by a minima locations calculator process, towards the location ofthe scanner 11 for the minima locations 278, which correspond to wherethe conical ends intersect the belly.

The minima locations 278, with the addition or subtraction of athreshold value by a threshold addition process, are used by asegmentation process to define the thresholds 290 for assigning pointsto the planar ends. In this embodiment, the left minimum locationdefines the feed end:

x _(i) <x _(m) _(L)

and the right minimum location the discharge end:

x _(i) <x _(m) _(R)

With the scan cloud data corresponding to the mill ends segmented by theopposing-end segmentation means at 275, the points representing the ballcharge 270 can be segmented from the scan point data using afloating-object segmentation means that includes a floating-objectsoftware utility, to segment points in the accumulated point cloud dataattributable to objects that are non-fixably connected to the mill. If aball charge is present at 345, the data editing means is adapted toidentify and segment this portion of the scan cloud data.

To identify the ball charge 270 points, a radius frequency calculatorcalculates the frequency of each cylindrical radius value is calculatedat 281 where

r _(i)=√{square root over (y _(i) ² +z _(i) ²)}

This frequency of each cylindrical radius can be visually depicted via ahistogram. An example of a typical histogram of this nature isillustrated in FIG. 18. The greatest frequency of cylindrical radii 284represents the points of the belly liner 272, as determined by a peakvalue determinative process. The radius at this peak location 284, withthe subtraction of a user-defined tolerance, is used as a threshold 286for assigning points to the ball charge:

r _(i) <r _(p)

In our example histogram of FIG. 18, the second lobe from the right 288comprises ball charge points; smaller lobes on the left of this secondlobe 288 comprise points from the tripod, protective hut 240 orsupporting beam 246 thereof.

With reference to FIG. 19, the second step in segmenting the ball chargepoints at 283 involves:

i. using a segmentation fitting process to fit all ball charge 270points to a plane by eigenvalue-based decomposition. The Eigenvaluedecomposition is as described earlier:

a scan cloud translation process to translate the entire point cloud ofm points to the centroid:

${\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}\mspace{14mu} - {\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}\mspace{14mu} {where}\mspace{14mu} \begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}}\mspace{14mu} = {\frac{1}{m}{\sum\limits_{i = 1}^{m}\; \begin{pmatrix}x \\y \\z\end{pmatrix}_{i}}}}}\;$

an eigenvalue decomposition process, to determine the eigenvaluedecomposition of the covariance matrix of the ball charge point cloud:

$\Lambda = {{{MCM}^{T}\mspace{14mu} {where}\mspace{14mu} C} = {\sum\limits_{i = 1}^{n}\; {\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i}\begin{pmatrix}x^{\prime} & y^{\prime} & z^{\prime}\end{pmatrix}}}}$

ii. The plane model is given by ax+by +cz−d=0 where (a, b, c) are theelements of the eigenvector corresponding to the smallest eigenvalue,and

${d = {\begin{pmatrix}a & b & c\end{pmatrix}\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}}\mspace{11mu}$

iii. using a residual deviation calculation process, to calculate theresidual deviation, v, from the best-fit plane for each point:ax_(i)+by_(i)+cz_(i)−d=v_(i)

iv. using a points discardal process, to discard points above the plane294 can then be discarded. The points discarded are those residualslarger than twice the standard deviation of residuals and above theplane 292, i.e. interior outliers only:

v _(i)<−2σ

where σ is the square root of the smallest eigenvalue (Note: the sign ofv_(i) is negative for points above the ball charge surface and positivefor points below).

This second step at 283 can then be repeated for one or more iterationsat 285 to further refine the ball charge data set. In this embodiment,the process is repeated five times.

The process is visually depicted in FIG. 19. In this example ball chargesegment cloud data, the figure depicts:

i. points from tripod legs and unwanted data points 296;

ii. threshold for removing unwanted interior data points 292; and

iii. best fit plane to ball change data 294.

Returning to the data editing means flow chart at FIG. 3, if a ballcharge is not present in the scan cloud data at 287, the ‘tripod’points, if one was utilised by the laser scanner 11, are removed at 289.In this embodiment, this is achieved by removing a specified cone ofpoints from beneath the laser scanner 11, from the scan cloud data:

α_(i) <t _(α) _(cone)

Having segmented the mill ends and the ball charge points from the scancloud data, the remaining data are the points corresponding with thebelly at 291. A belly segmentation means uses these points as the basisof its calculations, through the utilisation of a belly segmentationsoftware utility.

In this embodiment, the first step of the belly segmentation means is toremove any eccentricity in mill position and tilts by using acylinder-fit process. In this embodiment, the cylinder-fit process fitsa cylinder to all belly points at 293, as shown FIG. 20. The data isthen transformed accordingly.

The cylinder-fit process is illustrated in FIG. 20, and includes adepiction of the best-fit cylinder axis 298 and the best-fit cylinderradius (r) 300. The cylinder-fit process at 293 includes a cylinder-fitsoftware utility, using the following method:

i. for each belly point, the following equation is formed using anequation forming process

∥( p _(i) −q )× n∥−r=0

where the observation point vector is given by p _(i)=(x_(i)y_(i)z_(i))^(T)the cylinder position vector is given by q=(0 y_(c) z_(c))^(T)and the cylinder axis vector is given by n=(a b c)^(T)

ii. a weighted constraint addition process, to add the weightedconstraint a²+b²+c²−1=0 and solve in parametric least squares

iii. a cylinder position translation process to translate the entirepoint cloud by the cylinder position vector

$\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - \begin{pmatrix}0 \\y_{c} \\z_{c}\end{pmatrix}}$

iv. a rotation value calculator process, to calculate the rotationangles, φ and κ:

$\phi = {{{\arctan\left( \frac{c}{a} \right)}\mspace{14mu} {and}\mspace{14mu} \kappa} = {\arctan\left( \frac{- b}{a} \right)}}$

and a scan cloud transformation process, to transform the entire pointcloud

$\begin{pmatrix}x^{''} \\y^{''} \\z^{''}\end{pmatrix}_{i} = {M^{T}\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}}_{i}$

where M=R₃(κ)R₂(φ)

The next step performed is coarse belly segmentation at 295 wherebypoints with cylindrical radius less than a tolerance are removed.

r _(i) <t _(r) _(c)

Returning to the flowchart on FIG. 4, if the base reference dataincludes a throat liner radii at 301, the points of the scan cloud datasegmented and marked as a mill end with cylindrical radius less than thespecified throat liner radii are removed at 303:

r _(i) <r _(TL)

The process of segmenting the mill ends from the scan cloud data intothe mill ends, based either on the planar ends method at 277 or theconical ends method at 279, is repeated at 305. The second iteration ismore accurate due to the transformation of the scan cloud data in theproceeding period since the first iteration of the segmentation at 275.

Returning to the flowchart on FIG. 4, if there is no ball charge presentat 297 in the mill, a fine segmentation of the belly can be performedusing a radius-based filter at 299. The method of performing the finesegmentation in this embodiment involves removing any remaining spuriouspoints that lie either insider a radius representing the minimum radiusto the liner or points that lie outside of the mill.

r _(i) <t _(r) _(F) or r _(i) <t _(r) _(BOL)

This is illustrated in FIG. 21, whereby the arced lines represent theback of liner radius threshold to remove erroneous and/or unwanted dataoutside the mill 302 and the radius threshold to remove erroneous and/orunwanted data inside the mill 304.

The first step of the belly point segmentation is to remove anyeccentricity in mill position and tilts by fitting a cylinder to allbelly points at 293 and transforming the data accordingly is thenrepeated at 307.

With the scan cloud data more accurately orientated, the points whichwere previously segmented, removed or assigned a label are restored to asingle scan cloud data set 309, except those points previously removedin connection with:

i. the protective hut 240 at 247;

ii. points from the tripod legs 296 at 289;

iii. the intensity threshold value at 249;

iv. a defined distance range the measured range with a maximum at 251and minimum at 253 threshold derived from the mill radius and milllength of the base reference data.

The following previously described steps are then repeated at 311:

i. Remove points within the scan cloud data by comparing the measuredrange with a maximum at 251 and minimum at 253 threshold derived fromthe mill radius and mill length of the base reference data;

ii. the process labelling the points in the scan cloud data attributableto a mill end at 275;

iii. if a ball charge is present, identify and segment this portion ofthe scan cloud data at 345;

iv. remove any eccentricity in mill position and tilts by fitting acylinder to all belly points and transforming the data accordingly at293.

v. coarse belly segmentation at 295 whereby points with cylindricalradius less than a tolerance are removed

vi. if the base reference data includes a throat liner radii at 301:

a. the points of the scan cloud data segmented and marked as a mill endwith cylindrical radius less than the specified throat liner radiusthreshold 308 are removed at 303; and

b. The process of segmenting the mill ends from the scan cloud data intothe mill ends, based either on the planar ends method at 277 or theconical ends method at 279.

vii. if no ball charge is present, perform a fine segmentation of thebelly ends using a radius-based filter at 299

At the completion of these iterations, the scan cloud data is thereforesegmented into that attributable to the mill ends, the belly and theball charge (if a ball charge is present) at 313. Returning to FIG. 6,and with reference to FIG. 45, if the base reference data includes ringliner radii at 315, points in a mill end segmentation that are greaterthan the ring liner radius threshold 306 are reassigned to the bellypoint segmentation at 317 r_(i)>r_(RL).

If the base reference data includes throat liner radii at 319, points ina mill end segmentation that are less than the throat liner radiusthreshold 308 are removed from the scan cloud data at 321 r_(i)>r_(TL).

With reference to FIG. 7, the belly segmentation means also includes amethod of utilising a cone shape to further refine the segmentation ofpoints between the mill ends and the belly is provided at 323. In thisembodiment, this method of further refinement is achieved by thefollowing steps:

i. a centroid refiner process, to refine centroid of point cloud in thelongitudinal dimension by calculating the mean value at either end ofthe belly point cloud using an equal number of points (to avoid bias)

${\overset{\_}{x}}_{L} = {{\frac{1}{p^{-}}{\sum\limits_{i = 1}^{p^{-}}{x_{i}^{-}\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} \frac{p^{-}}{n}}}} \geq t_{p}}$and${\overset{\_}{x}}_{R} = {{{\frac{1}{p^{+}}{\sum\limits_{i = 1}^{p^{+}}{x_{i}^{+}\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} \frac{p^{+}}{n}}}} - \frac{p^{-}}{n}} \leq t}$

where ⁻ and ⁺ refer to points from the left and right ends of the bellyliner point cloud, respectively;

ii. a scan cloud translation process to translate the entire point cloudby the means of these two means

$x_{i}^{\prime} = {{x_{i} - {\overset{\_}{x}\mspace{14mu} {where}\mspace{14mu} \overset{\_}{x}}} = \frac{{\overset{\_}{x}}_{L} + {\overset{\_}{x}}_{R}}{2}}$

iii. a circle definition process, to define a circle being the circle ofintersection of the back-of-linear (BOL) cylindrical belly surface andthe BOL conical or planar end surface

iv. a cone definition process, to define a cone with this circle as thebase and apex on the belly side of the circle having half-apex angle of45°. A visual depiction of a cone of this type is provided in FIG. 24.

v. a point assignment process, to assign points within the cone to thegiven mill end; those outside are assigned to the belly.

Having further refined the belly and mill end point segmentation of thescan cloud data, a final removal of unwanted exterior points can beperformed at 325.

For the segmented belly points at 327, points whose cylindrical radiusexceeds the specified BOL radius are removed at 329: r_(i)>r_(BOL)

Points whose absolute value of the longitudinal co-ordinate exceeds halfthe specified mill length are also removed at 331:

${x_{i}} > \frac{L}{2}$

In the case of a planar end mill, points whose absolute value of thelongitudinal co-ordinate exceeds half the specified mill length areremoved at 333:

${x_{i}} > \frac{L}{2}$

In the case of conical end mill, construct the apex point locatedone-half of the known mill length from the mill centre. From the apexpoint, construct the cone of the BOL surface given the design data coneangle. This method is visually depicted in FIG. 25. Points belonging tothe mill end, but falling outside of this cone, are removed at 335.

If a ball charge 282 is present, a final refinement is performed at 343.With reference to FIG. 22, the following process is repeated severaltimes:

i. All ball charge points are fit to a plane 310 by eigenvalue-baseddecomposition, as previously described at 283;

ii. Outlier tolerance of 3 times the standard deviation of residuals isused to remove points above and below the best-fit plane 312 |v_(i)|<3σ

These steps at 343 can then be repeated for one or more iterations tofurther refine the ball charge data set. In the present embodiment, theprocess is repeated once.

The final output from the data editing means are sets of pointsattributable to the mill ends at 337 (illustrated in FIGS. 8b and 8c ),the belly at 339 (illustrated in FIG. 8a ) and the ball charge at 341,if present (illustrated in FIG. 8d ).

In the case of the mill utilising a secondary grinding system, thevolume of these objects that are non-fixably connected to the surfacecan be advantageously measured by the provision of a non-fixablyconnected volume measurement means. Two types of non-fixably connectedobjects that may be present in a mill are a set of balls and pieces ofore, which collectively constitute what is referred to here as the ballcharge.

In such instance, the data processing system includes a ball chargevolume measurement means. The ball charge volume measurement means workson the principle that the set of points representing the surface of theball charge, previously obtained through the data segmentation means,are modelled by a least-squares fit polynomial or other suitable modelrepresented by the function f(X,Y,Z). The volume of the ball charge,VBc, is then measured by calculating the volumetric difference betweenthe surface (f(XYZ)) and the best-fit cylinder, c, between the millends, i.e.

$V_{BC} = {\underset{V}{\int{\int\int}}\left\lbrack {{f\left( {X,Y,Z} \right)} - {{c\left( {X,Y,Z} \right\rbrack}{dV}}} \right.}$

The processing software 19 also includes a ball-ore discrimination meansto determine the ratio of balls to ore. According to the ball-orediscrimination means, each point in the set of points representing thesurface of the ball charge is classified as belonging to either a ballor a piece of ore through curvature analysis. For each point in this seta subset of pre-defined number of points, k, that are situated in itsimmediate neighbourhood are located. Local curvature measures, includingprincipal curvatures and change of curvature, are calculated from thissubset. A point is labelled as belonging to a ball if its principalcurvatures are equal within a pre-defined tolerance; otherwise itbelongs to a piece of ore. Constant change of curvature within theneighbourhood is used as a further criterion for the labelling.

A further analysis is conducted by ball-analysing means at each pointwithin its neighbourhood of k points so as to group together adjacentpoints belonging to the same label (i.e. ball or ore). Change ofcurvature is used in this analysis to identify the boundaries betweenadjacent balls. The result is a number of subsets of data comprisingpoints on individual balls, and a number of subsets of data comprisingpoints on pieces of ore.

These subset data results are used to estimate the composition of thematter below the surface scan, by factoring the distance between theliner and the surface of the ball charge, and the geometry of the mill.

In an alternative embodiment, a more accurate estimate is achieved byusing the top surface data cloud as the basis of an analysis of thelikely composition of the remainder of the ball charge underneath.

The data processing system also includes a ball size measurements meansto calculate the size of the balls in the mill. For each of the subsetsof ball points, the size of the ball can be measured as follows.Least-squares is used to fit the subset data to a sphere whoseanalytical model is given by

(X _(i) −X _(c))²+(Y _(i) −Y _(c))²+(Z _(i) −Z _(c))² −R ²=0

where (X_(i),Y_(i),Z_(i)) are the co-ordinates of point i belonging tothe subset, (X_(c),Y_(c),Z_(c)) are the co-ordinates of the spherecentre and R is the sphere radius. R and (X_(c),Y_(c),Z_(c)) constitutethe parameters to be estimated from the subset data.

Many mills are fitted with load-cells or other devices that measure thetotal mass, M_(T), of the mill and its contents. This mass comprises themass of the liners, M_(L), mass of the ball charge, M_(BC), and the massof the other mill elements (bearings, shell, bolts, etc.), M_(E):

M _(T) =M _(BC) +M _(T) +M _(E)

The mass of the other mill elements, M_(E), is one of the known designparameters. The mass of the mill liners is calculated from the millliner density, ρ_(L), which is one of the known design parameters, andthe mill liner volume, V_(L):

M _(L)=ρ_(L) V _(L)

The mill liner volume is calculated by integration of thealready-obtained liner thickness measurements over the visible surfaceof the mill, which may be incomplete, in which case it is multiplied byan appropriate factor to obtain the volume for the complete mill. Thus,the mass of the ball charge can be calculated as

M _(BC) =M _(T)−ρ_(L) V _(L) −M _(E)

The mass of the ball charge is further decomposed into that of the ore,M_(ore), and that of the balls, M_(balls),

M _(BC) =M _(ore) +M _(balls)

The densities of the ore, ρ_(ore), and balls, ρ_(balls), are knowndesign parameters, so the ball charge mass can be expressed as

M _(BC)=ρ_(ore) V _(ore)+ρ_(balls) V _(balls)

Furthermore, the volume of the ball charge is known from the Ball ChargeMeasurement Means:

V _(BC) =V _(ore) +V _(balls)

Thus, the volumes of the ore and balls can be determined from these twoequations and used to calculate the ball-to-ore ratio.

The discharge end liner contains holes to allow crushed ore to passthrough. In some mills these holes are much smaller than the diameter ofthe balls, whereas in others they are much larger (i.e. comparable insize to the balls) and their measurement is important.

In this instance, the data processing system includes a hole measurementmeans to measure the size of apertures in the surface of the mill. Thedischarge end holes may be arranged in a number of sectors radiatingoutward from the centre 341, as shown in FIG. 26 a.

Since the pattern of grate holes repeats around the discharge end,initial data processing is restricted to a region equal in angular widthto one sector, as depicted in FIG. 26 b,

Data edges are detected within that sector using local curvatureanalysis, eigenvalue analysis, intensity analysis or a combinationthereof. All edge points corresponding to one particular grate hole areassembled together as a subset of the point cloud data. FIG. 27a shows asegmented point cloud data of the discharge end, and FIG. 27b shows thesame point cloud data with detected edges for one grate hole 343. Fromthis subset the minimum and maximum widths are calculated. This isrepeated for all grate holes in the sector. The procedure is thenrepeated for all holes in the next grate sector.

It should be appreciated that the scope of the present invention is notlimited to the specific embodiment described herein. Importantly, theinvention is not limited to mapping and measuring thickness of millliners in any of the available mill types. Indeed, other embodiments maybe envisaged using the same principles applied to mapping and/ormeasuring surface displacement relative to a reference in otherapplications such as vessels and structures particularly common toindustrial installations.

What is claimed is:
 1. A system for orientating point cloud data of afirst surface relative to base reference data of a structure, the firstsurface being the surface of a wear liner(s), the base reference databeing referenced to a co-ordinate system related to the geometry of thestructure, the system comprising: an input source generator in the formof a scanner adapted to provide said point cloud data of the firstsurface, a co-ordinate system of the first surface being referenced to areference point of the scanner; a tilt-correction means for orientatingsaid point cloud data of the first surface relative to the basereference data of the structure, wherein the tilt-correction meansincludes a point cloud data orientation means, such that the co-ordinatesystem of the point cloud data aligns with the co-ordinate system of thebase reference data; a data editing means to filter spurious point datafrom the point cloud data of the first surface; a non-fixably connectedvolume measurement means, to measure the volume of objects that arenon-fixably connected to said surface to segment the non-fixablyconnected objects from the point cloud data; and wherein said basereference data of the structure comprises key reference data whichdescribes the geometry of the base reference of that structure, the basereference having a second surface, the second surface of the basereference being substantially distinct from the first surface, wherebyafter orientation of the point cloud data with the base reference datathe surface displacement of the first surface to the second surface ofthe base reference of the structure can be calculated to identify thethickness of the wear liner(s).
 2. A system as claimed in claim 1,wherein the base reference represents a substantially cylindrical shellwith opposing ends, the base reference further comprises criticalparameters defining the location of the central longitudinal axis of theshell, the radius of the shell, and the length of the cylindricalportion of the shell.
 3. A system as claimed claim 2, wherein said dataediting means further includes partitioning means to partition saidpoint cloud data into discrete segments corresponding to differentgeometrically described sections of said surface.
 4. A system as claimedin claim 3 wherein said data editing means includes at least one or moreof the following processes: (i) a scanner structure filter to removepoints attributable to any supporting means used to situate, stabiliseor protect the scanning means; (ii) an intensity filter to remove anypoint in the point cloud data above a threshold intensity value; and(iii) a range filter to remove any point less than a minimum or greaterthan a maximum threshold in the point cloud data.
 5. A system as claimedin claim 4, where said base reference data includes radius and lengthvariables, and wherein said range filter derives the threshold from saidradius and said length.
 6. A system as claimed in claim 3 wherein saidpartitioning means includes at least one or more of the followingprocesses: (i) an opposing-end segmentation means wherein saidopposing-end segmentation means includes at least one or more of thefollowing processes: a) a planar-end segmentation means to segmentpoints in the point cloud data when said base reference data denotes asubstantially planar end; and b) a conical-end segmentation means tosegment points in the point cloud data when said base reference datadenotes a substantially conical end; (ii) a floating-object segmentationmeans to segment points in the point cloud data attributable to objectsthat are non-fixably connected to said surface; and (iii) a bellysegmentation means to segment points in the point cloud dataattributable to said cylindrical shell; wherein said planar-endsegmentation means and conical-end segmentation means includes an endsegmentation software utility comprising: a frequency calculator processto calculate the frequency of each longitudinal co-ordinate within thepoint cloud data; a greatest frequency calculator process to determinethe greatest said frequency of positive and negative longitudinalco-ordinates; a threshold addition process to add a threshold value tosaid greatest negative and positive frequency values; and whereby saidconical-end segmentation means further comprises: a minima locationscalculator process to scan said longitudinal co-ordinate frequencies todetermine minima locations from said greatest negative and positivefrequency values as towards the location of said scanner; a segmentationprocess to segment the points in the point cloud data attributable tothe planar ends according to said minima locations; and whereby saidconical-end segmentation means uses the greatest negative and positivefrequency values of the minima locations calculator process to segmentthe points in the point cloud data attributable to the conical ends. 7.A system as claimed in claim 6, wherein said floating-objectsegmentation means includes a floating-object software utility, thatoperates after said opposing-end segmentation means has been effected onsaid point cloud data, said floating-object software utility comprising:a radius frequency calculator process to calculate the frequency of eachcylindrical radius value in point cloud data; a peak value determinativeprocess to determine a peak value of the frequencies of cylindricalradii and segmenting points based on said peak value; a segmentationfitting process to fit all segmented points to a plane byeigenvalue-based decomposition; a point cloud translation process totranslate point cloud data of m points to the centroid $\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - {\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}\mspace{14mu} {where}\mspace{14mu} \begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}} = {\frac{1}{m}{\sum\limits_{i = 1}^{m}\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}}}}$ an eigenvalue decomposition process, to determinethe eigenvalue decomposition of the covariance matrix Λ = MCM^(T) where$C = {\sum\limits_{i = 1}^{n}{\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i}\begin{pmatrix}x^{\prime} & y^{\prime} & z^{\prime}\end{pmatrix}_{i}}}$ a plane model is given by ax+by+cz−d=0 where (a, b,c) are the elements of the eigenvector corresponding to the smallesteigenvalue, and $d = {\begin{pmatrix}a & b & c\end{pmatrix}\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}$ a residual deviation calculation process, to calculatethe residual deviation, v, from the best-fit plane for each point:ax_(i)+by_(i)+cz_(i)−d=v_(i) a points discardal process, to discardpoints above the plane based on the standard deviation of residuals. 8.A system as claimed in claim 6 wherein said belly segmentation meansincludes a belly segmentation software utility, comprising: a centroidrefiner process, to refine the centroid of point cloud on thelongitudinal axis by calculating the mean value at either end of saidsubstantially cylindrical shell using an equal number of points${\overset{\_}{x}}_{L} = {{\frac{1}{p^{-}}{\sum\limits_{i = 1}^{p^{-}}{x_{i}^{-}\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} \frac{p^{-}}{n}}}} \geq t_{p}}$and${\overset{\_}{x}}_{R} = {{{\frac{1}{p^{+ \;}}{\sum\limits_{i = 1}^{p^{+}}{x_{i}^{+}\mspace{14mu} {such}\mspace{14mu} {that}\mspace{14mu} \frac{p^{+}}{n}}}} - \frac{p^{-}}{n}} \leq t}$where ⁻ and ⁺ refer to points from the left and right ends of the bellyliner point cloud, respectively; a point cloud translation process totranslate the entire point cloud data by the mean of these two means${x_{i}^{\prime} = {{x_{i} - {\overset{\_}{x}\mspace{14mu} {where}\mspace{14mu} \overset{\_}{x}}} = \frac{{\overset{\_}{x}}_{L} + {\overset{\_}{x}}_{R}}{2}}};$a circle definition process, to define a circle at each end of saidsubstantially cylindrical shell, said circle being the circle ofintersection of cylindrical belly surface of said base reference dataand the conical or planar end surface of base reference data; a conedefinition process, to define a cone with this circle as the base andapex on the belly side of the circle having half-apex angle of 45°; apoint assignment process, to assign each point within the cone to agiven end of said substantially cylindrical shell and to assign eachpoint outside of the code to said cylindrical shell.
 9. A system asclaimed in claim 6, wherein said belly segmentation means comprises acylinder-fit process, wherein said cylinder-fit process includes acylinder-fit software utility that operates after said opposing-endsegmentation means and said floating-object segmentation means have beeneffected on said point cloud data, said cylinder-fit software utilitycomprises: an equation forming process, to form the following equationfor each point in the point cloud data ∥({right arrow over(p)}_(i)−q)×{right arrow over (n)}∥−r=0 where the observation pointvector is given by {right arrow over (p)}=(x_(i) y_(i) z_(i))^(T), thecylinder position vector is given by {right arrow over (q)}=(0 y_(c)z_(c))^(T) and the cylinder axis vector is given by {right arrow over(n)}(a b c)^(T) a weighted constraint addition process, to add theweighted constraint a²+b²+c²−1=0 and solving in parametric least squaresa cylinder position translation process, to translate the entire scanpoint cloud by the cylinder position vector $\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - \begin{pmatrix}0 \\y_{c} \\z_{c}\end{pmatrix}}$ a rotation value calculator process, to calculate therotation angles, φ and κ${\varphi = {{{\arctan \left( \frac{c}{a} \right)}\mspace{14mu} {and}\mspace{14mu} \kappa} = {\arctan \left( \frac{- b}{a} \right)}}};$and a mint cloud transformation process, to transform the entire pointcloud $\begin{pmatrix}x^{''} \\y^{''} \\z^{''}\end{pmatrix}_{i} = {M^{T}\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}}_{i}$ where M=R₃(κ)R₂(φ).
 10. A system as claimed in claim2, wherein said non-fixably connected volume measurement means furthercomprises a ball size measurements means to measure the size of a set ofballs within the cylindrical shell.
 11. A system as claimed in claim 1wherein the point cloud data orientation means comprises: a temporarypoint removal means for temporarily removing points that aresubstantially longitudinally parallel with points removed by the scannerstructure filter; a rotation values means to calculate rotation valuesto be applied to the point cloud data; a point cloud data rotationprocess; and a point restoration means whereby points removed by thetemporary point removal means are restored to the point cloud data. 12.A system as claimed in claim 11, wherein said point cloud dataorientation means includes a rotation value software utility comprising:a translator process to translate the point cloud data using centroidreduction ${\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{\begin{pmatrix}x \\y \\z\end{pmatrix}_{i} - {\begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}\mspace{14mu} {where}\mspace{14mu} \begin{pmatrix}\overset{\_}{x} \\\overset{\_}{y} \\\overset{\_}{z}\end{pmatrix}}} = {\frac{1}{n}{\sum\limits_{i = 1}^{n}\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}}}}};$ and a calculator process to determine rotationvalues via eigenvalue decomposition of the covariance matrix of thepoint cloud data Λ = MCM^(T) where$C = {\sum\limits_{i = 1}^{n}{\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i}{\begin{pmatrix}x^{\prime} & y^{\prime} & z^{\prime}\end{pmatrix}_{i}.}}}$ wherein the rotation value software utility isadapted to rotate the point cloud data, said rotation value softwareutility comprising: a rotation process to rotate values so that thex-longitudinal, y-transverse and z-height axes coincide $\begin{pmatrix}x^{''} \\y^{''} \\z^{''}\end{pmatrix}_{i} = {M\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}}_{i}$ where M is a rotation value calculated by saidrotation values means.
 13. A system as claimed in claim 1, wherein thetilt-correction means includes a tilt-correction software utility fordetermining and correcting any residual tilt in the point cloud dataabout an axis comprising: an extractor process to extract a temporaryset of points (p) within a set of constraints:|x _(i) |<t _(x) |y _(i) |<t _(y) z _(i) <t _(z) a subtracter process tosubtract a mean x co-ordinate from the temporary set of points:$x_{i}^{\prime} = {{x_{i} - {\overset{\_}{x}\mspace{14mu} {where}\mspace{14mu} \overset{\_}{x}}} = {\frac{1}{p}{\sum\limits_{i = 1}^{p}x_{i}}}}$forming the following 2D line equation for each point in the resultingtemporary set of points:z _(i) =mx _(i) ′+b a least-squares calculator to calculate theleast-squares estimate of the slope, m, as:$m = \frac{\sum\limits_{i = 1}^{p}{z_{i}x_{i}^{\prime}}}{\sum\limits_{i = 1}^{p}\left( x_{i}^{\prime} \right)^{2}}$a rotate angle calculator process to calculate a rotation angle φ as:φ=arctan(m) a scan point rotator process to rotate the scan point data:$\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix}_{i} = {{{R_{2}(\varphi)}\begin{pmatrix}x \\y \\z\end{pmatrix}_{i}\mspace{14mu} {where}\mspace{14mu} {R_{2}(\varphi)}} = {\begin{pmatrix}{\cos \; \varphi} & 0 & {{- \sin}\; \varphi} \\0 & 1 & 0 \\{\sin \; \varphi} & 0 & {\cos \; \varphi}\end{pmatrix}.}}$
 14. A system as claimed in claim 1, further includinga hole measurement means to measure the size of apertures in saidsurface.
 15. A system as claimed in claim 1, wherein said non-fixablyconnected volume measurement means further comprises a ball-orediscrimination means to measure the ratio of a set of balls to non-ballmaterials.
 16. A system for orientating point cloud data of a firstsurface of a mill relative to base reference data to determine themill's liner thickness, the first surface being the wear surface of themill's wear liners, the base reference data being referenced to aco-ordinate system related to the geometry of the mill, the systemcomprising: an input source generator in the form of a scanner adaptedto provide said point cloud data of the first surface, a co-ordinatesystem of the first surface being referenced to a reference point of thescanner; a tilt-correction means for orientating said point cloud dataof the first surface relative to the base reference data of the mill,wherein the tilt-correction means includes a point cloud dataorientation means, such that the co-ordinate system of the point clouddata aligns with the co-ordinate system of the base reference data; adata editing means to filter spurious point data from the point clouddata of the first surface, the data editing means including identifyingand segmenting a non-fixably connected volume; the volume of thenon-fixably connected volume being measured by a non-fixably connectedvolume measurement means, the non-fixably connected objects being theball charge, the volume measurement means comprising a ball-orediscrimination means to determine the ratio of balls to ore of the ballcharge, wherein the ball-ore discrimination means conducts a curvatureanalysis of the ball charge to provide subsets of data comprising pointson individual balls, and a number of subsets of data comprising pointson ore, wherein the subset data results are used to estimate thecomposition of the matter below the surface scan, by factoring thedistance between the liner and the surface of the ball charge, and thegeometry of the surface; wherein said base reference data representscritical geometrical parameters of a base reference of the mill, thebase reference being a second surface of the mill, the second surfacebeing the surface against which the mill's liners are secured, or thesurface aligning with the back of the mill's liners, and issubstantially distinct from the first surface, whereby after orientationof the point cloud data with the base reference data the surfacedisplacement of the first surface of the mill to the second surface ofthe mill can be calculated to identify the thickness of the wear liners.